prelims: CLEAR,100000,2000 DIM bored(11,11),buttonplate(4000),peesname$(7) DIM butx1(31),butx2(31),buty1(31),buty2(31) DIM bwrapnoid(288),bdiaganoid(288),bjerk(288) DIM bjumpnar(288),bverticon(288),chip(288) DIM bking(288),bregeneroid(288),blank(288) DIM rwrapnoid(288),rdiaganoid(288),rjerk(288) DIM rjumpnar(288),rverticon(288),bhilite(288) DIM rking(288),rregeneroid(288),rhilite(288) SCREEN 2,640,200,4,2 WINDOW 2,"Tactrix! © 1994 Hard Core Game Design",,28,2 PALETTE 0,0,0,0 :REM black PALETTE 1,1,1,1 :REM white PALETTE 2,0.4,0.4,1 :REM Blue PALETTE 3,1,0.2,0.2 :REM red PALETTE 4,0.4,0.4,0.4 :REM gray PALETTE 5,0.33,0.87,0 :REM green PALETTE 6,0.8,0,0.93 :REM purple PALETTE 7,0.6,0.6,0.6 :REM light gray PALETTE 8,0,0.9375,0.8125 :REM cyan start: t=0:t1=0:x=0:ox=0:y=0:oy=0:legal=0:oops=0 restart=0:mx=0:my=0:a=0:winner=0:didit=0 but1=0:but2=0:pees=0:opees=0:owner=0:pl=0 oowner=0:dx=0:dy=0:buypees=0:cost=0:tutor=0 putpees=0:putowner=0:putx=0:puty=0:cx=0:cy=0 peesname$(1)="King" peesname$(2)="Regeneroid" peesname$(3)="Diaganoid" peesname$(4)="Verticon" peesname$(5)="Wrapnoid" peesname$(6)="Jumpnar" peesname$(7)="Jerk" GOSUB definedapeeses GOSUB definedabuttons drawdabored: FOR x=19 TO 319 STEP 30 LINE(x,10)-(x,160),4 LINE(x+1,10)-(x+1,160),4 NEXT FOR y=10 TO 160 STEP 15 LINE(19,y)-(319,y),4 NEXT LINE(350,150)-(350,177),4 LINE(350,177)-(594,177),4 LINE(594,177)-(594,150),4 LINE(594,150)-(350,150),4 initializebored: bored(1,1)=3:bored(10,1)=3 bored(2,1)=2:bored(9,1)=2 bored(3,1)=4:bored(8,1)=4 bored(4,1)=5:bored(7,1)=5 bored(5,1)=7:bored(6,1)=6 bored(1,10)=-3:bored(10,10)=-3 bored(2,10)=-2:bored(9,10)=-2 bored(3,10)=-4:bored(8,10)=-4 bored(4,10)=-5:bored(7,10)=-5 bored(5,10)=-7:bored(6,10)=-6 FOR t=1 TO 10 bored(t,2)=1 bored(t,9)=-1 NEXT FOR y=3 TO 8 FOR x=1 TO 10 bored(x,y)=10 NEXT NEXT GOSUB filldabored play: pl=1:rchips=0:bchips=0 winner=0 newturn: pl=-pl turn1: ON ERROR GOTO 0 tutor=0 LOCATE 22,7 COLOR 2 PRINT"Chips :";bchips LOCATE 22,28 COLOR 3 PRINT"Chips :";rchips GOSUB cleardabox COLOR -2*(pl=1)-3*(pl=-1) LOCATE 20,45 IF pl=1 THEN PRINT"Blue's turn." IF pl=-1 THEN PRINT"Red's turn." turn2: didit=0 GOSUB checkmouse IF but2<>0 THEN GOSUB move:IF didit=0 THEN turn2 IF but1=24 THEN GOSUB buy:IF didit=0 THEN turn1 IF but1=22 THEN GOSUB quit:GOTO turn1 IF but1=30 THEN GOSUB checknew:IF restart=0 THEN turn1 IF but1=31 THEN GOSUB tutor:GOTO turn1 IF but1=21 THEN savegame IF but1=23 THEN loadgame IF restart=1 THEN restart=0:GOTO initializebored IF winner<>0 THEN gameover IF didit=1 THEN newturn GOTO turn2 savegame: GOSUB cleardabox COLOR 1 LOCATE 20,45 PRINT"Click Save again to initiate" LOCATE 21,45 PRINT"save game sequence." GOSUB checkmouse IF but1<>21 THEN turn1 GOSUB cleardabox LOCATE 20,45 PRINT"Enter device and directory:" LOCATE 21,45 GOSUB getstring IF s$="" THEN turn1 d$=s$ GOSUB cleardabox LOCATE 20,45 PRINT"Enter filename:" LOCATE 21,45 GOSUB getstring IF s$="" THEN turn1 GOSUB cleardabox LOCATE 20,45 PRINT"Saving..." ON ERROR GOTO fileerror OPEN d$+s$+".tac" FOR OUTPUT AS 1 PRINT#1,rchips PRINT#1,bchips PRINT#1,pl FOR y=1 TO 10 FOR x=1 TO 10 PRINT#1,bored(x,y) NEXT NEXT CLOSE 1 ON ERROR GOTO 0 GOTO turn1 loadgame: GOSUB cleardabox COLOR 1 LOCATE 20,45 PRINT"Click Load again to initiate" LOCATE 21,45 PRINT"load game sequence." GOSUB checkmouse IF but1<>23 THEN turn1 GOSUB cleardabox LOCATE 20,45 PRINT"Enter device and directory:" LOCATE 21,45 GOSUB getstring IF s$="" THEN turn1 d$=s$ GOSUB cleardabox LOCATE 20,45 PRINT"Enter filename:" LOCATE 21,45 GOSUB getstring IF s$="" THEN turn1 GOSUB cleardabox LOCATE 20,45 PRINT"Loading..." ON ERROR GOTO fileerror OPEN d$+s$+".tac" FOR INPUT AS 1 INPUT#1,rchips INPUT#1,bchips INPUT#1,pl FOR y=1 TO 10 FOR x=1 TO 10 INPUT#1,bored(x,y) NEXT NEXT CLOSE 1 ON ERROR GOTO 0 GOSUB filldabored GOTO turn1 fileerror: WINDOW 2 GOSUB cleardabox LOCATE 20,45 IF ERR=53 THEN PRINT"File or directory not found." ELSEIF ERR=13 THEN PRINT"Not a Tactrix! save file." ELSEIF ERR=55 THEN PRINT"File already being used." ELSEIF ERR=49 THEN PRINT"Disk not found." ELSEIF ERR=74 THEN PRINT"Not a mounted volume." ELSEIF ERR=70 THEN PRINT"Disk is write protected." ELSEIF ERR=61 THEN PRINT"Disk is full." ELSE PRINT"error #";ERR END IF LOCATE 21,45 PRINT"Click anything to Continue." GOSUB checkmouse RESUME turn1 buy: GOSUB cleardabox oops=0 LOCATE 20,45 PRINT"Select a piece to buy." LOCATE 21,45 GOSUB checkmouse IF but1<25 OR but1>29 THEN RETURN buypees=but1-24:cost=(6-buypees)*3 IF pl=1 THEN IF bchipspl AND pees<>0 AND pees<>10 THEN PRINT"Not your piece." oops=1 END IF IF pees=10 THEN PRINT"You can't move a chip.":oops=1 IF pees=0 THEN PRINT"Not a piece.":oops=1 IF oops=1 THEN RETURN IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite PRINT "Move where?" LOCATE 21,45 ox=x:oy=y:opees=pees:oowner=owner GOSUB checkmouse IF but2=0 THEN IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite PRINT"Cancelling selection." oops=1 END IF IF oops=1 THEN RETURN x=but1:y=but2-10 pees=ABS(bored(x,y)) owner=SGN(bored(x,y)) GOSUB checklegal IF legal=0 THEN PRINT"Illegal move." IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite oops=1 END IF IF oops=1 THEN RETURN IF oowner=owner AND pees<>10 THEN PRINT "You can't take your own piece." IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite oops=1 END IF IF oops=1 THEN RETURN didit=1 PUT(-7+ox*30,-3+15*oy),blank,PSET bored(ox,oy)=0 IF pees=7 THEN winner=-owner putowner=oowner:putpees=opees putx=x:puty=y:GOSUB putpees IF opees=1 THEN IF oowner=1 AND y=10 THEN FOR t=1 TO 20 PUT(-7+x*30,-3+15*y),bhilite FOR t2=1 TO 200:NEXT NEXT bchips=bchips+25 PUT(-7+x*30,-3+15*y),blank,PSET bored(x,y)=0 GOSUB cleardabox LOCATE 20,45 PRINT"Cool! 25 Chip bonus!!" LOCATE 21,45 COLOR 1 PRINT"Click anything to continue." GOSUB checkmouse END IF IF oowner=-1 AND y=1 THEN FOR t=1 TO 20 PUT(-7+x*30,-3+15*y),rhilite FOR t2=1 TO 200:NEXT NEXT rchips=rchips+25 PUT(-7+x*30,-3+15*y),blank,PSET bored(x,y)=0 GOSUB cleardabox LOCATE 20,45 PRINT"Cool! 25 Chip bonus!!" LOCATE 21,45 COLOR 1 PRINT"Click anything to continue." GOSUB checkmouse END IF END IF IF pees=10 THEN bchips=bchips-1*(pl=1) rchips=rchips-1*(pl=-1) END IF RETURN putpees: IF putowner=1 THEN IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),bjerk,PSET IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),bjumpnar,PSET IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),bwrapnoid,PSET IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),bverticon,PSET IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),bdiaganoid,PSET IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),bregeneroid,PSET IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),bking,PSET END IF IF putowner=-1 THEN IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),rjerk,PSET IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),rjumpnar,PSET IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),rwrapnoid,PSET IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),rverticon,PSET IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),rdiaganoid,PSET IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),rregeneroid,PSET IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),rking,PSET END IF bored(putx,puty)=putpees*putowner RETURN tutor: tutor=1 oops=0 GOSUB cleardabox COLOR 8 LOCATE 20,45 PRINT"Select piece." GOSUB checkmouse IF but2=0 THEN RETURN ox=but1:oy=but2-10 opees=ABS(bored(ox,oy)):oowner=SGN(bored(ox,oy)) GOSUB cleardabox LOCATE 20,45 PRINT"Please wait..." LOCATE 21,45 PRINT"Finding all legal moves..." LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),8 LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),8 LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),8 LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),8 LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),8 LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),8 FOR y=1 TO 10 FOR x=1 TO 10 IF x<>ox OR y<>oy THEN pees=ABS(bored(x,y)):owner=SGN(bored(x,y)) GOSUB checklegal IF legal=1 THEN oops=0 IF oowner=owner AND pees<>10 THEN oops=1 IF oops=0 THEN IF oowner=1 THEN PUT(-7+x*30,-3+15*y),bhilite IF oowner=-1 THEN PUT(-7+x*30,-3+15*y),rhilite END IF END IF END IF NEXT NEXT GOSUB cleardabox LOCATE 20,45 PRINT peesname$(8-opees);"." LOCATE 21,45 IF opees<>6 AND opees<>7 THEN PRINT"Cost :";3*opees IF opees=6 THEN PRINT"Cannot be replaced." IF opees=7 THEN PRINT"Game Over if lost." LOCATE 22,45 PRINT"Click anything to continue."; GOSUB checkmouse GOSUB cleardabox LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),0 LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),0 LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),0 LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),0 LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),0 LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),0 LOCATE 20,45 PRINT"Please wait..." LOCATE 21,45 PRINT"Resetting board..." GOSUB filldabored RETURN checklegal: legal=0 IF opees=1 THEN GOSUB checkjerk IF opees=2 THEN GOSUB checkjumpnar IF opees=3 THEN GOSUB checkwrapnoid IF opees=4 THEN GOSUB checkverticon IF opees=5 THEN GOSUB checkdiaganoid IF opees=6 THEN GOSUB checkregeneroid IF opees=7 THEN GOSUB checkking RETURN checkjerk: IF ox=x AND y=oy+oowner THEN IF pees=10 OR pees=0 THEN legal=1 END IF IF (ox=x AND(oy=y+2 OR oy=y-2))OR(oy=y AND(ox=x+2 OR ox=x-2)) THEN IF pees<>10 AND pees<>0 THEN legal=1 END IF RETURN checkjumpnar: dx=ABS(ox-x):dy=ABS(oy-y) IF (dx=1 AND dy=2)OR(dx=2 AND dy=1) THEN legal=1 RETURN checkwrapnoid: dx=ABS(ox-x):dy=ABS(oy-y) oops=0 IF dx=0 AND dy=1 THEN legal=1 IF dx=1 AND dy=1 THEN legal=1 IF dy=0 THEN dx=x-ox IF dx>5 AND dx<9 THEN t=ox dx=-1 t=t+2*dx:IF t<1 THEN t=t+10 WHILE t<>x IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1 t=t+dx IF t<1 THEN t=t+10 WEND IF oops=0 THEN legal=1 END IF IF dx>-9 AND dx<-5 THEN t=ox dx=1 t=t+2*dx:IF t>10 THEN t=t-10 WHILE t<>x IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1 t=t+dx IF t>10 THEN t=t-10 WEND IF oops=0 THEN legal=1 END IF IF dx>1 AND dx<5 THEN t=ox dx=1 t=t+2*dx WHILE t<>x IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1 t=t+dx WEND IF oops=0 THEN legal=1 END IF IF dx>-5 AND dx<-1 THEN t=ox dx=-1 t=t+2*dx:IF t<1 THEN t=t+10 WHILE t<>x IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1 t=t+dx WEND IF oops=0 THEN legal=1 END IF END IF RETURN checkverticon: dx=ABS(ox-x):dy=ABS(oy-y) IF dx+dy=0 THEN RETURN oops=0 IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN legal=1 ELSE IF x=ox THEN t=oy dy=SGN(y-oy) t=t+dy WHILE t<>y IF bored(x,t)<>0 AND bored(x,t)<>10 THEN oops=1 t=t+dy WEND IF oops=0 THEN legal=1 END IF END IF RETURN checkdiaganoid: dx=ABS(ox-x):dy=ABS(oy-y) IF dx+dy=0 THEN RETURN oops=0 IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN legal=1 ELSE IF dx<>dy THEN oops=1 ELSE dx=SGN(x-ox):dy=SGN(y-oy) t=ox:t1=oy t=t+dx:t1=t1+dy WHILE t<>x IF bored(t,t1)<>0 AND bored(t,t1)<>10 THEN oops=1 t=t+dx:t1=t1+dy WEND IF oops=0 THEN legal=1 END IF END IF RETURN checkregeneroid: dx=ABS(ox-x):dy=ABS(oy-y) IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN IF oowner=1 AND y<6 THEN legal=1 IF oowner=-1 AND y>5 THEN legal=1 END IF RETURN checkking: dx=ABS(ox-x):dy=ABS(oy-y) IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN legal=1 RETURN halt: SCREEN CLOSE 2 END quit: GOSUB cleardabox COLOR 1 LOCATE 20,45 PRINT"Click Quit again to exit." GOSUB checkmouse IF but1=22 THEN halt RETURN checknew: GOSUB cleardabox COLOR 1 LOCATE 20,45 PRINT"Click New again to restart." GOSUB checkmouse IF but1=30 THEN restart=1 LOCATE 21,45 PRINT"Resetting board..." END IF RETURN cleardabox: LOCATE 20,45 PRINT " " LOCATE 21,45 PRINT " " LOCATE 22,45 PRINT " " RETURN filldabored: FOR y=1 TO 10 FOR x=1 TO 10 pees=ABS(bored(x,y)) owner=SGN(bored(x,y)) IF pees=10 THEN PUT(-7+x*30,-3+15*y),chip,PSET IF pees=0 THEN PUT(-7+x*30,-3+15*y),blank,PSET IF owner=1 THEN IF pees=1 THEN PUT(-7+x*30,-3+15*y),bjerk,PSET IF pees=2 THEN PUT(-7+x*30,-3+15*y),bjumpnar,PSET IF pees=3 THEN PUT(-7+x*30,-3+15*y),bwrapnoid,PSET IF pees=4 THEN PUT(-7+x*30,-3+15*y),bverticon,PSET IF pees=5 THEN PUT(-7+x*30,-3+15*y),bdiaganoid,PSET IF pees=6 THEN PUT(-7+x*30,-3+15*y),bregeneroid,PSET IF pees=7 THEN PUT(-7+x*30,-3+15*y),bking,PSET END IF IF owner=-1 THEN IF pees=1 THEN PUT(-7+x*30,-3+15*y),rjerk,PSET IF pees=2 THEN PUT(-7+x*30,-3+15*y),rjumpnar,PSET IF pees=3 THEN PUT(-7+x*30,-3+15*y),rwrapnoid,PSET IF pees=4 THEN PUT(-7+x*30,-3+15*y),rverticon,PSET IF pees=5 THEN PUT(-7+x*30,-3+15*y),rdiaganoid,PSET IF pees=6 THEN PUT(-7+x*30,-3+15*y),rregeneroid,PSET IF pees=7 THEN PUT(-7+x*30,-3+15*y),rking,PSET END IF NEXT NEXT RETURN definedapeeses: CLS GET (0,0)-(23,11),blank LINE(0,0)-(0,11),2 LINE(0,11)-(23,11),2 LINE(23,11)-(23,0),2 LINE(23,0)-(0,0),2 PAINT(10,10),2 GET (0,0)-(23,11),bhilite LINE(0,0)-(0,11),3 LINE(0,11)-(23,11),3 LINE(23,11)-(23,0),3 LINE(23,0)-(0,0),3 PAINT(10,10),3 GET (0,0)-(23,11),rhilite FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bjerk FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bjumpnar FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bwrapnoid FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bverticon FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bdiaganoid FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bking FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*2:PSET(x+1,y),a*2 NEXT x,y GET (0,0)-(23,11),bregeneroid FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a:PSET(x+1,y),a NEXT x,y GET (0,0)-(23,11),chip RESTORE FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rjerk FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rjumpnar FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rwrapnoid FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rverticon FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rdiaganoid FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rking FOR y=0 TO 11:FOR x=0 TO 23 STEP 2 READ a PSET(x,y),a*3:PSET(x+1,y),a*3 NEXT x,y GET (0,0)-(23,11),rregeneroid CLS RETURN definedabuttons: t=0 FOR x=20 TO 320 STEP 30 t=t+1 butx1(t)=x+2:butx2(t)=x+28 buty1(t)=11:buty2(t)=159 NEXT t=t-1 FOR y=10 TO 145 STEP 15 t=t+1 butx1(t)=21:butx2(t)=318 buty1(t)=y+1:buty2(t)=y+14 NEXT LINE(0,0)-(14,0),5 LINE(14,0)-(14,15),5 LINE(14,15)-(0,15),5 LINE(0,15)-(0,0),5 PAINT(10,10),5 GET (0,0)-(14,15),buttonplate LOCATE 5,65 COLOR 5 PRINT"Save" PUT(65*8-23,5*8-12),buttonplate PUT(65*8-8,5*8-12),buttonplate PUT(65*8+7,5*8-12),buttonplate PUT(65*8+22,5*8-12),buttonplate t=21 butx1(t)=65*8-23:butx2(t)=65*8+37 buty1(t)=5*8-12:buty2(t)=5*8+3 LINE(0,0)-(14,0),3 LINE(14,0)-(14,15),3 LINE(14,15)-(0,15),3 LINE(0,15)-(0,0),3 PAINT(10,10),3 GET (0,0)-(14,15),buttonplate LOCATE 11,65 COLOR 3 PRINT"Quit" PUT(65*8-23,11*8-12),buttonplate PUT(65*8-8,11*8-12),buttonplate PUT(65*8+7,11*8-12),buttonplate PUT(65*8+22,11*8-12),buttonplate t=22 butx1(t)=65*8-23:butx2(t)=65*8+37 buty1(t)=11*8-12:buty2(t)=11*8+3 LINE(0,0)-(14,0),2 LINE(14,0)-(14,15),2 LINE(14,15)-(0,15),2 LINE(0,15)-(0,0),2 PAINT(10,10),2 GET (0,0)-(14,15),buttonplate LOCATE 2,65 COLOR 2 PRINT"Load" PUT(65*8-23,2*8-12),buttonplate PUT(65*8-8,2*8-12),buttonplate PUT(65*8+7,2*8-12),buttonplate PUT(65*8+22,2*8-12),buttonplate t=23 butx1(t)=65*8-23:butx2(t)=65*8+37 buty1(t)=2*8-12:buty2(t)=2*8+3 LINE(0,0)-(14,0),8 LINE(14,0)-(14,15),8 LINE(14,15)-(0,15),8 LINE(0,15)-(0,0),8 PAINT(10,10),8 GET (0,0)-(14,15),buttonplate LOCATE 2,50 COLOR 8 PRINT"Buy" SCROLL (377,2*8-12)-(437,2*8+3),4,0 PUT(50*8-23,2*8-12),buttonplate PUT(50*8-8,2*8-12),buttonplate PUT(50*8+7,2*8-12),buttonplate PUT(50*8+22,2*8-12),buttonplate t=24 butx1(t)=50*8-23:butx2(t)=50*8+37 buty1(t)=2*8-12:buty2(t)=2*8+3 LOCATE 17,64 PRINT"Tutor" SCROLL (65*8-23,17*8-12)-(65*8+37,17*8+3),4,0 PUT(65*8-23,17*8-12),buttonplate PUT(65*8-8,17*8-12),buttonplate PUT(65*8+7,17*8-12),buttonplate PUT(65*8+22,17*8-12),buttonplate t=31 butx1(t)=65*8-23:butx2(t)=65*8+37 buty1(t)=17*8-12:buty2(t)=17*8+3 LINE(0,0)-(14,0),6 LINE(14,0)-(14,15),6 LINE(14,15)-(0,15),6 LINE(0,15)-(0,0),6 PAINT(10,10),6 GET (0,0)-(14,15),buttonplate LOCATE 8,65 COLOR 6 PRINT"New" SCROLL (65*8-23,8*8-12)-(65*8+37,8*8+3),4,0 PUT(65*8-23,8*8-12),buttonplate PUT(65*8-8,8*8-12),buttonplate PUT(65*8+7,8*8-12),buttonplate PUT(65*8+22,8*8-12),buttonplate t=30 butx1(t)=65*8-23:butx2(t)=65*8+37 buty1(t)=8*8-12:buty2(t)=8*8+3 peesbuttons: LINE(0,0)-(14,0),7 LINE(14,0)-(14,15),7 LINE(14,15)-(0,15),7 LINE(0,15)-(0,0),7 PAINT(10,10),7 GET (0,0)-(14,15),buttonplate LOCATE 5,47 COLOR 7 PRINT"Diaganoid" SCROLL(50*8-38,5*8-12)-(50*8+52,5*8+3),4,0 PUT(50*8-38,5*8-12),buttonplate PUT(50*8-23,5*8-12),buttonplate PUT(50*8-8,5*8-12),buttonplate PUT(50*8+7,5*8-12),buttonplate PUT(50*8+22,5*8-12),buttonplate PUT(50*8+37,5*8-12),buttonplate t=25 butx1(t)=50*8-38:butx2(t)=50*8+51 buty1(t)=5*8-12:buty2(t)=5*8+3 LOCATE 8,48 PRINT"Verticon" PUT(50*8-38,8*8-12),buttonplate PUT(50*8-23,8*8-12),buttonplate PUT(50*8-8,8*8-12),buttonplate PUT(50*8+7,8*8-12),buttonplate PUT(50*8+22,8*8-12),buttonplate PUT(50*8+37,8*8-12),buttonplate t=26 butx1(t)=50*8-38:butx2(t)=50*8+51 buty1(t)=8*8-12:buty2(t)=8*8+3 LOCATE 11,48 PRINT"Wrapnoid" PUT(50*8-38,11*8-12),buttonplate PUT(50*8-23,11*8-12),buttonplate PUT(50*8-8,11*8-12),buttonplate PUT(50*8+7,11*8-12),buttonplate PUT(50*8+22,11*8-12),buttonplate PUT(50*8+37,11*8-12),buttonplate t=27 butx1(t)=50*8-38:butx2(t)=50*8+51 buty1(t)=11*8-12:buty2(t)=11*8+3 LOCATE 14,48 PRINT"Jumpnar" SCROLL(50*8-38,14*8-12)-(50*8+52,14*8+3),4,0 PUT(50*8-38,14*8-12),buttonplate PUT(50*8-23,14*8-12),buttonplate PUT(50*8-8,14*8-12),buttonplate PUT(50*8+7,14*8-12),buttonplate PUT(50*8+22,14*8-12),buttonplate PUT(50*8+37,14*8-12),buttonplate t=28 butx1(t)=50*8-38:butx2(t)=50*8+51 buty1(t)=14*8-12:buty2(t)=14*8+3 LOCATE 17,50 PRINT"Jerk" PUT(50*8-38,17*8-12),buttonplate PUT(50*8-23,17*8-12),buttonplate PUT(50*8-8,17*8-12),buttonplate PUT(50*8+7,17*8-12),buttonplate PUT(50*8+22,17*8-12),buttonplate PUT(50*8+37,17*8-12),buttonplate t=29 butx1(t)=50*8-38:butx2(t)=50*8+51 buty1(t)=17*8-12:buty2(t)=17*8+3 PUT(0,0),buttonplate ERASE buttonplate RETURN loop: GOTO loop getstring: GOSUB holdit s$="" PRINT"<"; cx=POS(0)-1 cy=CSRLIN gs1: a$=INKEY$:IF a$=""THEN gs1 IF ASC(a$)=13 THEN PRINT:RETURN IF ASC(a$)=8 AND s$<>""THEN s$=LEFT$(s$,LEN(s$)-1):GOTO gs2 IF ASC(a$)=8 THEN gs1 IF LEN(s$)=28 THEN BEEP:GOTO gs1 s$=s$+a$ gs2: LOCATE cy,cx:PRINT s$"< "; GOTO gs1 holdit: FOR t=1 TO 500:a$=INKEY$:NEXT:a$="":RETURN checkmouse: IF MOUSE(0)>-1 THEN checkmouse WHILE MOUSE(0)<0 WEND mx=MOUSE(1):my=MOUSE(2) GOSUB whichbut RETURN whichbut: but1=0:but2=0 FOR t=0 TO 31 IF mx>=butx1(t) AND mx<=butx2(t) THEN IF my>=buty1(t) AND my<=buty2(t) THEN IF but1<>0 THEN but2=t IF but1=0 THEN but1=t END IF END IF NEXT RETURN peesdata: jerk: DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 jumpnar: DATA 0,0,0,1,1,0,0,1,1,0,0,0 DATA 0,0,0,1,1,0,0,1,1,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 1,1,0,0,0,0,0,0,0,0,1,1 DATA 1,1,0,0,0,1,1,0,0,0,1,1 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 1,1,0,0,0,1,1,0,0,0,1,1 DATA 1,1,0,0,0,0,0,0,0,0,1,1 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,1,1,0,0,1,1,0,0,0 DATA 0,0,0,1,1,0,0,1,1,0,0,0 wrapnoid: DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,1,0,0,0,0,0,0,1,0,0 DATA 0,1,0,0,0,0,0,0,0,0,1,0 DATA 1,0,0,0,0,1,1,0,0,0,0,1 DATA 1,0,0,0,1,1,1,1,0,0,0,1 DATA 1,0,0,0,1,1,1,1,0,0,0,1 DATA 1,0,0,0,0,1,1,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,1,0 DATA 0,0,1,0,0,0,0,0,0,1,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 verticon: DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 diaganoid: DATA 1,1,0,0,0,0,0,0,0,0,1,1 DATA 1,1,1,0,0,0,0,0,0,1,1,1 DATA 0,1,1,1,0,0,0,0,1,1,1,0 DATA 0,0,1,1,1,0,0,1,1,1,0,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,0,1,1,1,1,0,0,0,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,1,1,1,0,0,1,1,1,0,0 DATA 0,1,1,1,0,0,0,0,1,1,1,0 DATA 1,1,1,0,0,0,0,0,0,1,1,1 DATA 1,1,0,0,0,0,0,0,0,0,1,1 king: DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,1,0,0,0,0,1,0,0,0 DATA 1,0,0,1,0,0,0,0,1,0,0,1 DATA 0,1,0,0,1,0,0,1,0,0,1,0 DATA 0,1,0,0,1,0,0,1,0,0,1,0 DATA 0,1,0,0,1,1,1,1,0,0,1,0 DATA 0,1,1,1,0,0,0,0,1,1,1,0 DATA 1,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,1,0,0,0,0,0,0,1,1,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 regeneroid: DATA 0,0,0,1,1,1,1,1,1,0,0,0 DATA 0,0,1,0,0,0,0,0,0,1,0,0 DATA 0,1,0,0,1,1,1,1,0,0,1,0 DATA 1,0,0,1,0,0,0,0,1,0,0,1 DATA 1,0,1,0,0,1,1,0,0,1,0,1 DATA 1,0,1,0,1,0,0,1,0,1,0,1 DATA 1,0,1,0,1,0,0,1,0,1,0,1 DATA 1,0,1,0,0,1,1,0,0,1,0,1 DATA 1,0,0,1,0,0,0,0,1,0,0,1 DATA 0,1,0,0,1,1,1,1,0,0,1,0 DATA 0,0,1,0,0,0,0,0,0,1,0,0 DATA 0,0,0,1,1,1,1,1,1,0,0,0 chip: DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,1,1,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0